package com.example.demo.leetcode.top;

/**
 * 实现 int sqrt(int x) 函数。
 *
 * 计算并返回 x 的平方根，其中 x 是非负整数。
 *
 * 由于返回类型是整数，结果只保留整数的部分，小数部分将被舍去。
 *
 * 示例 1:
 *
 * 输入: 4
 * 输出: 2
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/sqrtx
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 **/
public class Gaoshu_求平方根 {


    public int mySqrt(int x) {

        // t=(t+x/t)/2 牛顿迭代公式求解
        if(x<2){
            return x;
        }
        int t=2;
        return (int) sqrt(t,x);

    }


    public double sqrt(double t,int x){
        double result = (t+x/t)/2;
        if(result == t){
            return result;
        }else{
            return sqrt(result,x);
        }

    }


}
